package cn.wolfcode.luowowo.search.service;

import cn.wolfcode.luowowo.search.query.HotelSearchQueryObject;
import cn.wolfcode.luowowo.search.template.HotelTemplate;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * @author win
 */
public interface HotelTemplateSearchService {

    /**
     * 保存酒店信息
     *
     * @param hotel
     */
    void saveOrUpdate(HotelTemplate hotel);

    /**
     * 根据目的地名称查询游记
     *
     * @param themeName 目的地的名称
     * @return
     */
    List<HotelTemplate> queryByHotelThemeName(String themeName);

    /**
     * 根据目的地的名称查询酒店
     *
     * @param destName 酒店名称
     * @return
     */
    List<HotelTemplate> queryByHotelDestName(String destName);

    /**
     * 根据目的地的编号查询酒店
     *
     * @param destId 目的地编号
     * @return
     */
    List<HotelTemplate> queryByDestinationId(Long destId);

    /**
     * 根据条件查询酒店
     *
     * @param qo
     * @return
     */
    Page<HotelTemplate> searchByQo(HotelSearchQueryObject qo);

    /**
     * 根据城市编号查询酒店, 按分数查询酒店前8的数据
     *
     * @param cityId 城市编号
     * @return
     */
    List<HotelTemplate> queryByDestIdTop8InScore(Long cityId);

    /**
     * 根据酒店的编号集合查询酒店
     *
     * @param hotelIds 酒店编号集合
     * @return
     */
    List<HotelTemplate> getHotelByHotelIds(List<Long> hotelIds);
}
